// node 为了实现模块化  在文件执行时增加了 匿名函数  所以this在这个函数中被更改了

// process 进程 当前的执行环境

// Buffer 内存中

// setImmediate

// process 
// argv 运行时传递的参数 
// console.log(process.argv)
// node 4node.js -o xxx jj=ll
// [
//   'C:\\dev\\nodejs\\node.exe',
//   'D:\\zfpeixunxuexia\\3node\\4node.js',
//   '-o',
//   'xxx',
//   'jj=ll'
// ]

// env 环境变量
// 设置环境变量  mac  export NODE_ENV=development
//              window  set NODE_ENV=development

// cwd  当前的工作目录  
// 哪里运行的执行的命令  输出的就是哪个目录

// nextTick
// 只能在node里面有  微任务
// 上到下执行  检查
// timer  setTimeout  
// poll  fs.readFile
// check  setImmediate   
setTimeout(()=>{
  console.log('xx')
},4)
setImmediate(()=>{
  console.log('xx2')
})
//  这个执行顺序跟上下文的执行环境有关主线程执行完  如果过了4毫秒 那么就先执行 setTimeout 
// 如果是在 fs中  那么执行完这个io 就到了  check 阶段  先执行的 setImmediate 
// 每一个任务走完  就会清空下  微任务

// stdin  stderr stdout